home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc Source Code / Messaging / OSL / HshTbGlu.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  5.1 KB  |  128 lines  |  [TEXT/MPCC]

  1. /*
  2.     File:        HshTbGlu.cpp
  3.  
  4.     Contains:    Glue for calling AEM's hash table functions from PowerPC
  5.  
  6.     Written by:    Eric House
  7.  
  8.     Copyright:    © 1993-94 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <1>     8/11/94    eeh        first checked in
  13.  
  14.     To Do:
  15. */
  16.  
  17. #ifndef _HSHTBTYP_
  18. #include "HshTbTyp.h"
  19. #endif
  20.  
  21. #ifndef __MIXEDMODE__
  22. #include <MixedMode.h>
  23. #endif
  24.  
  25. //------------------------------------------------------------------------------
  26. // PowerPC glue for Hash Manager functions
  27. //------------------------------------------------------------------------------
  28.  
  29. pascal OSErr AENewHashTable(long NumEntries, short KeySize,
  30.         short ValueSize, MemProcBlock* MemHooks, Boolean SysHeap,
  31.         HashTable* Table)
  32. {
  33.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))),
  34.                             (kD0DispatchedPascalStackBased |
  35.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  36.                             RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |                    // <eeh> added
  37.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, kFourByteCode) |
  38.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, kTwoByteCode) |
  39.                             DISPATCHED_STACK_ROUTINE_PARAMETER(3, kTwoByteCode) |
  40.                             DISPATCHED_STACK_ROUTINE_PARAMETER(4, kFourByteCode) |
  41.                             DISPATCHED_STACK_ROUTINE_PARAMETER(5, kOneByteCode) |
  42.                             DISPATCHED_STACK_ROUTINE_PARAMETER(6, kFourByteCode)),
  43.                             0x092E, NumEntries, KeySize, ValueSize,
  44.                             MemHooks, SysHeap, Table);    
  45. }
  46.  
  47. pascal OSErr AEDisposeHashTable( HashTable* Table, MemProcBlock* MemHooks)
  48. {
  49.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))), 
  50.                             (kD0DispatchedPascalStackBased |
  51.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  52.                             RESULT_SIZE(kTwoByteCode) |                    // <eeh> added
  53.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, kFourByteCode) |
  54.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, kFourByteCode)),
  55.                             0x042F, Table, MemHooks);    
  56. }
  57.  
  58. pascal OSErr AEAddKeyEntry(HHand Table, MemProcBlock* MemHooks, KeyPtr Key,
  59.         HEntryPtr Value)
  60. {
  61.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))), 
  62.                             (kD0DispatchedPascalStackBased |
  63.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  64.                             RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |                    // <eeh> added
  65.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, kFourByteCode) |
  66.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, kFourByteCode) |
  67.                             DISPATCHED_STACK_ROUTINE_PARAMETER(3, kFourByteCode) |
  68.                             DISPATCHED_STACK_ROUTINE_PARAMETER(4, kFourByteCode)),
  69.                             0x0830, Table, MemHooks, Key, Value);    
  70. }
  71.  
  72.  
  73. pascal OSErr AEReplaceEntry(HashTable Table,MemProcBlock* MemHooks, KeyPtr Key,
  74.         HEntryPtr Value)
  75. {
  76.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))), 
  77.                             (kD0DispatchedPascalStackBased |
  78.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  79.                             RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |                    // <eeh> added
  80.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, kFourByteCode) |
  81.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, kFourByteCode) |
  82.                             DISPATCHED_STACK_ROUTINE_PARAMETER(3, kFourByteCode) |
  83.                             DISPATCHED_STACK_ROUTINE_PARAMETER(4, kFourByteCode)),
  84.                             0x0831, Table, MemHooks, Key, Value);    
  85. }
  86.  
  87. pascal OSErr AERemoveKeyEntry(HashTable Table, MemProcBlock* MemHooks, KeyPtr Key)
  88. {
  89.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))), 
  90.                             (kD0DispatchedPascalStackBased |
  91.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  92.                             RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |                    // <eeh> added
  93.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, kFourByteCode) |
  94.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, kFourByteCode) |
  95.                             DISPATCHED_STACK_ROUTINE_PARAMETER(3, kFourByteCode)),
  96.                             0x0632, Table, MemHooks, Key );    
  97. }
  98.  
  99. pascal OSErr AEGetKeyValue(HashTable Table, MemProcBlock* MemHooks, KeyPtr Key,
  100.         HEntryPtr Value)
  101. {
  102.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))), 
  103.                             (kD0DispatchedPascalStackBased |
  104.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  105.                             RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |                    // <eeh> added
  106.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, kFourByteCode) |
  107.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, kFourByteCode) |
  108.                             DISPATCHED_STACK_ROUTINE_PARAMETER(3, kFourByteCode) |
  109.                             DISPATCHED_STACK_ROUTINE_PARAMETER(4, kFourByteCode)),
  110.                             0x0833, Table, MemHooks, Key, Value ) ;    
  111. }
  112.  
  113. pascal OSErr AEGetIndexedEntry( HashTable Table, MemProcBlock* MemHooks, long index,
  114.         KeyPtr Key, HEntryPtr Value)
  115. {
  116.     return (OSErr)CallUniversalProc(*((UniversalProcPtr *)(0xe00 + (0x0016 * 4))), 
  117.                             (kD0DispatchedPascalStackBased |
  118.                             RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |                    // <eeh> added
  119.                             DISPATCHED_STACK_ROUTINE_SELECTOR_SIZE(kTwoByteCode) |
  120.                             DISPATCHED_STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(HashTable))) |
  121.                             DISPATCHED_STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(MemProcBlock*))) |
  122.                             DISPATCHED_STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))) |
  123.                             DISPATCHED_STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(KeyPtr))) |
  124.                             DISPATCHED_STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(HEntryPtr)))),
  125.                             0x0A34, Table, MemHooks, index, Key, Value ) ;
  126. }
  127.  
  128.